package com.xiaolun.eightLock;

import java.util.concurrent.TimeUnit;

class Phone {
	public  synchronized void sendEmail() throws Exception {
//		TimeUnit.SECONDS.sleep(4); //推荐时间设置
		System.out.println("---------sendEmail------------");
	}

	public  synchronized void sendSMS() throws Exception {
		System.out.println("---------sendSMS------------");
	}

	public  void sayHello() throws Exception{
		System.out.println("---------sayHello------------");
	}
}

/**
 * 8锁
 * 1、标准访问 是先打印邮件还是短信
 * 2、暂停4秒钟在邮件方法，先打印邮件还是短息
 * 但是短信没有停止
 * 3、新增普通sayHello方法，请问先打印邮件还是sayHello
 * 4、两部手机，是先打印邮件还是短信
 * 5、两个静态同步方法，同一部手机，是先打印邮件还是短信
 * 6、两个静态同步方法，两部手机，是先打印邮件还是短信
 * 7、一个静态同步方法，一个普通同步方法，同一部手机，是先打印邮件还是短信
 * 8、一个静态同步方法，一个普通同步方法，两部手机，是先打印邮件还是短信
 */
public class Lock8Demo01 {
	public static void main(String[] args) {
		Phone phone = new Phone();
		Phone phone2 = new Phone();

		new Thread(() -> {
			try {
				phone.sendEmail();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}, "A").start();

		new Thread(() -> {
			try {
				phone.sendSMS();
//				phone.sayHello();
//				phone2.sendSMS();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}, "B").start();
	}
}
